Electronic devices and methods of data transmission

ABSTRACT

According to certain embodiments, a smart dongle is used for enabling wireless communication between a user&#39;s computer and a plurality of user&#39;s wireless computer peripheral devices, the smart dongle is configured to: (i) create a data frame for digital transmission based on an audio-type frame format of sample rate in a range of 44 kHz to 96 kHz; (ii) create a respective time slot in the data frame for each of a wireless mouse, a wireless keyboard and a wireless audio headset of the plurality of user&#39;s wireless peripheral devices that are paired to the smart dongle; (iii) transmit data from the wireless keyboard to the user&#39;s computer at a first latency that is less than a first time period in a range of 2 milliseconds to 3 milliseconds; (iv) transmit data from the wireless mouse to the user&#39;s computer at a second latency that is less than a second time period in a range of 2 milliseconds to 3 milliseconds; and (v) transmit data from the wireless audio headset to the user&#39;s computer at a third latency that is less than a third time period in a range of 10 milliseconds to 14 milliseconds.

TECHNICAL FIELD

The subject application relates to electronic devices and methods ofdata transmission.

BACKGROUND

Response time of a computer or a periphery device (e.g., a humaninterface device) is critical. For example, in an eco-system, whichincludes a host (e.g., a computer, a server, a laptop or the like) andsome peripheral devices (e.g., an audio headset, a keyboard, a mouse,etc.), lag or failure of signal interactions between the host and theperiphery devices may adversely affect performance of the eco-system.Such lag may be resulted from, for example but is not limited to,traffic congestion, deterioration of communication quality, etc.

For example, the eco-system may include a gaming system, where lag orfailure of signal interactions between the host and the peripherydevices may cause uncomfortable experience of user(s) or gamer(s). Thelag or failure of signal interactions may also adversely affect resultsof competition.

Lag or failure may occur during communication channel or pipe switch,e.g., from one wireless channel (between a host and an human interfacedevice) to another wireless channel in order to have a bettercommunication quality. Lag or failure may occur during channel switche.g., from one wired channel to another wired channel to have a bettercommunication quality. Lag or failure may occur during channel switche.g., from a wireless channel to a wired channel (e.g., for batterycharge or to avoid mutual interferences). Lag or failure may occurduring channel switch e.g., from a wired channel to a wireless channelfor relatively comfortable or convenient manipulation (or control).

A device (either the host or the periphery device) of the eco-system maylose parameter(s) or configuration during channel switch, and onesolution to fix this issue is to reset of the periphery device forreconfiguration, which is a time-consuming work.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are included to provide a furtherunderstanding of the technology used in the present invention, and areincorporated into and constitute a part of this specification. Thedrawings illustrate embodiments and, together with the specification,serve to explain the principles of the technology used in the presentinvention.

FIG. 1A illustrates a system according to some embodiments of thesubject application.

FIG. 1B illustrates a memory of the system as shown in FIG. 1A accordingto some embodiments of the subject application.

FIG. 1C illustrates software stored in the memory as shown in FIG. 1Baccording to some embodiments of the subject application.

FIG. 2A illustrates an electronic device, according to some embodimentsof the subject application.

FIG. 2B illustrates another electronic device, according to someembodiments of the subject application.

FIG. 3 illustrates data according to some embodiments of the subjectapplication.

FIG. 4 illustrates interactions between one electronic device andanother electronic device, according to some embodiments of the subjectapplication.

FIG. 5 illustrates interactions between one electronic device andanother electronic device, according to some embodiments of the subjectapplication.

FIG. 6 illustrates a smart dongle supporting wireless communication witha host computer, according to some embodiments of the subjectapplication.

FIG. 7 illustrates the multiplexing of data that is sent to peripheraldevices using a dongle, according to some embodiments of the subjectapplication.

FIG. 8 illustrates fixed time slot assignments created by a smartdongle, according to some embodiments of the subject application.

FIG. 9 illustrates time slots that are dynamically assigned and createdby a smart dongle, according to some embodiments of the subjectapplication.

FIG. 10 illustrates payloads that are dynamically assigned and createdby a smart dongle, according to some embodiments of the subjectapplication.

For a better understanding of the aforementioned aspects of theinvention as well as additional aspects and embodiments thereof,reference should be made to the Description of Embodiments below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Methods, systems, user interfaces, and other aspects of the inventionare described. Reference will be made to certain embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with theembodiments, it will be understood that it is not intended to limit theinvention to these particular embodiments alone. On the contrary, theinvention is intended to cover alternatives, modifications andequivalents that are within the spirit and scope of the invention. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

Moreover, in the following description, numerous specific details areset forth to provide a thorough understanding of the present invention.However, it will be apparent to one of ordinary skill in the art thatthe invention may be practiced without these particular details. Inother instances, methods, procedures, components, and networks that arewell known to those of ordinary skill in the art are not described indetail to avoid obscuring aspects of the present invention.

Some embodiments of the subject application will be described in detailbelow referring to the accompanying drawings. Some embodiments of thesubject application provide an electronic device. According to certainembodiments, the electronic device includes a memory and a controlmodule. According to certain embodiments, the control module isconfigured to: generate data having a first portion and a secondportion; transmit the first portion of the data on a first communicationchannel toward an external device; suspend transmission of the data onthe first communication channel if an interruption occurs ininteractions between the electronic device and the external device onthe first communication channel; store the second portion of the data inthe memory; and transmit the second portion of the data on a secondcommunication channel toward the external device.

Some embodiments of the subject application provide an electronicdevice. The electronic device includes a memory and a control module.The control module is configured to: generate data having a firstportion and a second portion; receive a first portion of data on a firstcommunication channel from an external device; suspend the receipt ofthe data on the first communication channel if an interruption occurs ininteractions between the electronic device and the external device onthe first communication channel; store the first portion of the data inthe memory; and receive a second portion of the data on a secondcommunication channel from the external device.

Some embodiments of the subject application provide a method of datatransmission. The method includes: generating data having a firstportion and a second portion; transmitting the first portion of the dataon a first communication channel between a first device and a seconddevice; suspending transmission of the data on the first communicationchannel if an interruption occurs in interactions between the firstdevice and the second device on the first communication channel;buffering the second portion of the data; and transmitting the secondportion of the data on a second communication channel between the firstdevice and the second device.

FIG. 1A illustrates a system 1 according to some embodiments of thesubject application.

Referring to FIG. 1A, a system 1 or eco-system 1 may include, forexample but is not limited to, a gaming system. Some embodiments includea surveillance system for security control, a rescue system where arobot, a drone (e.g., an unmanned aerial vehicle) is included, anautomatic manufacture system (e.g., an unmanned factory), a remotecontrol surgical system, etc.

The system 1 includes electronic devices 2, 3, and 4. The electronicdevice 2 may include a host computer such as a server, a laptop, atablet, etc.

The electronic device 3 may include a dongle or a transceiver, accordingto some embodiments. According to some other embodiments, a transceivermay be built into electronic device 2.

The electronic devices 4 may include human interface device(s) orperipheral device(s). Examples of peripheral devices are headphones (oraudio headsets), keyboards, mice, etc.

A communication channel or pipe 51 may be formed or created between theelectronic device 2 and the electronic device 4. A communication channelor pipe 52 may be formed or created between the electronic device 2 andthe electronic device 4. A communication channel or pipe 53 may beformed or created between the electronic device 2 and the electronicdevice 4. A communication channel or pipe 54 may be formed or createdbetween the electronic device 2 and the electronic device 4. Acommunication channel or pipe 55 may be formed or created between theelectronic device 2 and the electronic device 4. A communication channelor pipe 56 may be formed or created between the electronic device 2 andthe electronic device 4. It is contemplated the eco-system 1 may includemore or less communication pipe(s) between the electronic device 2 andthe electronic device 4. The electronic device 3 may help or facilitateestablishment of communication pipe(s) between the electronic device 2and the electronic device 4.

The electronic device 2 includes a control module 21, a memory 24,communication modules 25, 26, and 27, and another control module 28. Itis contemplated that the electronic device 2 may include more or lessmodule(s) or component(s), which is not illustrated in FIG. 1A forsimplicity.

The control module 21 may include, for example but is not limited to, acentral processing unit (CPU), a control unit, a processor, anarithmetic and logic unit (ALU), or the like.

Memory 24 may include, for example but is not limited to, a volatilememory (e.g., a random access memory (RAM), Dynamic Random Access Memory(DRAM), Static Random Access Memory (SRAM)), a flash memory, asolid-state disk (or solid-state drive) (SSD), or other types of memoryor memory module(s).

Each of the communication modules 25, 26, and 27 may include a wiredcommunication module or a wireless communication module.

The control module 28 may include, for example but is not limited to, apower control (or management) module, a light control module, and athermal control module or the like. It is contemplated that theelectronic device 2 may more module(s). The power management module maycontrol a power supply of the electronic device 2 (not shown in FIG.1A). The light control module may control light emitting component(s) ofthe electronic device 2 (not shown in FIG. 1A). The thermal controlmodule may control fan(s) of the electronic device 2 (not shown in FIG.1A).

The electronic device 3 is electrically connected or coupled to theelectronic device 2. The electronic device 3 includes communicationmodules 31 and 32. Each of the communication modules 31 and 32 mayinclude wireless communication module or a wired communication module,respectively. It is contemplated that the electronic device 3 mayinclude more or less module(s).

The electronic device(s) 4 (e.g., 4 a, 4 b, 4 c, 4 d, 4 e) may include,for example but is not limited to, a point device (such as a mouse, atouch pad, or a stylus), a gad pad, a joy stick, an audio headset, akeyboard, a simulator (such as a driving simulator, a flight simulator,and a surgeon simulator), a camera (e.g., a webcam, a gesture capturecamera, and a surveillance camera), a display (or a touch display), asurgeon console (e.g., an human interface device for the Da VinciSurgical System), a remote control for a robot (e.g., a rescue robot anda scouting robot), a drone (e.g., an automatic pilot and an unmannedaerial vehicle), or robotic arms (not shown in FIG. 1A). The embodimentsmay include more or less than the number of device(s) 4 shown in FIG.1A.

Each of the communication channels or pipes 51, 52, 53, 54, 55, and 56may be established in accordance with a communication protocol, forexample but is not limited to a Bluetooth communication protocol, aWi-Fi communication protocol, ZigBee protocol, a proprietarycommunication protocol, USB communication protocol, Thunderboltcommunication protocol, Ethernet communication protocol, or otherprotocol(s). In other words, as non-limiting examples, communicationchannel 51 may be a Bluetooth communication protocol, whilecommunication channel 52 may be a Wi-Fi communication protocol,communication channel 53 may be a USB communication protocol,communication channel 54 may be a Thunderbolt communication protocol,etc.

FIG. 1B illustrates a memory of the system as shown in FIG. 1A accordingto some embodiments.

Referring to FIG. 1B, software (or software programs) or applications241, 242, 243 are stored in the memory 24. Each of the software 241,242, and 243 may be installed or loaded in the electronic device 2. Eachof the software 241, 242, and 243 may be executed in the electronicdevice 2. Each of the software 241, 242, and 243 may be installed andloaded in the memory 24 of the electronic device 2. Each of the software241, 242, and 243 may be executed by the control module 21 theelectronic device 2.

The software 241 may include, for example but is not limited to, acontrol program (e.g., operating system (OS) software, detectionsoftware to detect congestion of communication channels betweenelectronic device 2 and electronic device(s) 4, or other software(s))that may help or facilitate controlling the electronic device 2. Thesoftware 241 may also help or facilitate controlling the electronicdevice 4.

Referring back to FIG. 1A, the electronic device 3 may include driver(s)which helps or facilitates the software 241 controlling the electronicdevice(s) 4. The electronic device 3 may include driver(s) whichcooperates with the software 241 to control the electronic device(s) 4.The driver of the electronic device 3 may support the function(s)provided by the software 241 to control the electronic device(s) 4. Theelectronic device 3 may include firmware(s) which helps or facilitatesthe software 241 controlling the electronic device(s) 4. The electronicdevice 3 may include firmware(s) which corporates with the software 241to control the electronic device(s) 4. The firmware(s) of the electronicdevice 3 may support function(s) provided by the software 241 to controlthe electronic device(s) 4.

Referring to FIG. 1B, the software 242 may include, for example but isnot limited to, game software. Some embodiments include remote controlsoftware (e.g., for surgical operation, surveillance, rescue,scout/reconnaissance, manufacture, assembly, bomb removal or otherpurpose(s)).

Software 241 may support software 242. For example, the software 241 maygenerate data (or commands) to control the electronic device(s) 4 inaccordance with profile(s) of the software 242. For example, thesoftware 241 may generate data (or commands) to control the electronicdevice(s) 4 in accordance with profile(s) of the software 242. Forexample, the software 241 may generate data (or commands) to adjustvolume (or other audio setting(s)) of the electronic device 4 (e.g.,audio headset 4) in accordance with configuration or profile of thesoftware 242 such that user may hear or receive sound effect thatconforms to the configuration or profile of software 242. In otherwords, data transmitted between the electronic device 2 and theelectronic device 4 may be associated with software 242.

For example, the software 241 may generate data or command(s) (e.g.,haptic command(s)) to control a vibrator of the electronic device 4(e.g., audio headset 4 or mouse 4) in accordance with configuration orprofile of the software 242 such that user may be notified or alerted.

For example, software 241 may generate data or command(s) to control thesoftware 242 in accordance with data received from the electronicdevice(s) 4. For example, software 241 may generate data or command(s)to cooperate with the software 242 in accordance with data received fromthe electronic device(s) 4 (e.g., a mouse). For example, software 241may help software 242 displaying motion in a display (not shown in FIG.1A). For example, if configuration or profile of software 242 isrelatively sensitive to movement in an x-axis (of the mouse), software241 may help software 242 creating corresponding or relevant command(s)to respond data received from the mouse.

Data from the software 242 may be further processed by the software 241.For example, in accordance with the configuration or profile of thesoftware 242, footstep (sound effect data or command(s)) from thesoftware 242 may be amplified by the software 241 and then output to anelectronic device 4 (e.g., an audio headset or a speaker). For example,different haptic commands from the software 242 are amplified or reducedby the software 241 and then transmitted to an electronic device 4(e.g., a game pad, a simulator, or a surgeon console). For example,signals from an electronic device 4 (e.g., a mouse, a joy stick, asimulator, or a surgeon console) are processed by software 241. Forexample, signals from an electronic device 4 (e.g., a mouse, a joystick, a simulator, or a surgeon console) are processed by software 242.For example, signals from an electronic device 4 (e.g., a mouse, a joystick, a simulator, or a surgeon console) are processed by software 241and 242.

The software 241 may help generating commands to the electronicdevice(s) 4. For example, the software 241 may help generating commandsto control illumination component(s) (e.g., light emitting devices(LEDs) on the electronic device 4. The software 241 may help generatingcommands to control fan of an electronic device 4. The software 241 mayhelp generating commands to control a display on an electronic device 4.The software 241 may help generating commands to the control module 28to further control a power supply of the electronic device 2. Thesoftware 241 may help generating commands to the control module 28 tofurther control light emitting device(s) of the electronic device 2. Thesoftware 241 may help generating commands to the control module 28 tofurther control fan(s) of the electronic device 2.

Software 241 may include a utility engine. Software 241 helps a user tohave custom parameters/configurations for an electronic device 4.Software 241 helps a user to create various profiles and modes for theelectronic devices 4, which define different action(s), lightingeffect(s) or other settings of the electronic device(s) 4, and adjustsettings for human interface devices 4. According to certainembodiments, software 241 helps user to configure lighting effects,actions, or other settings of the electronic device(s) 4 in accordancewith a profile associated with a specific game or program (e.g.,software 242). Even for a single profile, software 241 may help the userto create different modes in an electronic device 4. Each mode hasdifferent settings in an electronic device for a task within a program(e.g., the software 242). For example, when a game program (e.g.,software 242) is executed, and the profile may have various modes fordifferent characters that the user might select (e.g., a medic, a sniperor other role), and the settings/parameters/configurations of theelectronic device(s) 4 can be switched between these modes accordingly.Each of the profiles, modes, settings, parameters, and configurations ofthe electronic device(s) 4 may be program-dependent. For example, eachof the profiles, modes, settings, parameters, and configurations of theelectronic device(s) 4 may be changed or varied in accordance withsoftware 241 stored in the memory 24. For example, each of the profiles,modes, settings, parameters, and configurations of the electronicdevice(s) 4 may be changed or varied in accordance with software 242stored in the memory 24. For example, each of the profiles, modes,settings, parameters, and configurations of the electronic device(s) 4may be changed or varied in accordance with software 243 stored in thememory 24.

In some embodiments, each of the profiles, modes, settings, parameters,and configurations of the electronic device(s) 4 may be time-varied.

The software 241 may be associated with the software 242. The data orcommand(s) from the software 242 may be processed by the software 241.The software 241 may generate data or command(s) to be transmitted toelectronic devices 4. The data or command(s) received from theelectronic devices 4 may be processed by the software 241. The software241 may generate data or command(s) to be transmitted to the software242.

The software 241 may help controlling data transmission between theelectronic devices 2 and 4. The software 241 may help controlling datatransmission between the software 242 and the electronic devices 4. Thesoftware 241 may check whether command(s) or data from the software 242is successfully transmitted to the electronic device 4. The software 241may check whether command(s) or data from the electronic devices 4 issuccessfully received. If an interruption of data transmission (orinteractions) between the devices 2 and 4 on a communication channel orpipe occurs (or being detected), the software 241 may freeze or suspenda state of data transmission (e.g., a receiving state or a transmittingstate) and keep parameters or configurations of the electronic device 2.

FIG. 1C illustrates software stored in the memory as shown in FIG. 1Baccording to some embodiments of the subject application.

Referring to FIG. 1C, software 243 may include programs or applications511, 521, 531, 541, 551, and 561. Program 511 may help or facilitateestablishment of communication channel 51. Program 521 may help orfacilitate establishment of communication channel 52. Program 531 mayhelp or facilitate establishment of communication channel 53. Program541 may help or facilitate establishment of communication channel 54.Program 551 may help or facilitate establishment of communicationchannel 55. Program 561 may help or facilitate establishment ofcommunication channel 56.

Referring back to FIG. 1B, lower-level identifiers (L-IDs) 441, 451,461, and 471 are stored in the memory 24 of the electronic device 2.Each of the L-IDs 441, 451, 461, and 471 refers to identification forrelatively lower layers. For example, the relatively lower layers mayrefer to the physical layer (Layer 1), the data link layer (Layer 2),the network layer (Layer 3), and/or the transport layer (Layer 4) in theOSI model. One L-ID is used to help or facilitate establishment of acommunication channel in accordance with one communication protocol(including, but not limited to Bluetooth communication protocol, a Wi-Ficommunication protocol, a proprietary communication protocol (e.g.,proprietary wireless 2.4 GHz data communication protocol), USBcommunication protocol, Thunderbolt communication protocol, Ethernetcommunication protocol). The L-ID may include a Bluetooth Address(BD_ADDR) (for the Bluetooth protocol), a Vendor ID (VID) or a ProductID (PID) (for the USB protocol), a Service Set Identifier (SSID) (forthe Wi-Fi (IEEE 802.11) protocol), MAC address (for the Ethernetprotocol), or other communication protocol-associated data. The L-ID mayinclude an silicon ID (or manufacture ID) of a controller of electronicdevice 4 (e.g., the control module 41 as shown in FIG. 2B), which isalso marked on the controller during manufacture. The L-ID may include adevice serial number of the electronic device 4.

A set of higher-level identifiers (H-ID) 43 is stored in the memory 24.The H-ID set 43 may include H-ID 43-1, H-ID 43-2, . . . , H-ID 43-n,where n is a positive integer. According to certain embodiments, eachH-ID of at least a subset of the H-ID set 43 may refer to identificationor verification of relatively higher layer(s). For example, therelatively higher layer(s) may be refer to the session layer (Layer 5),the presentation layer (Layer 6), and/or application layer (Layer 7) inthe OSI model (https://en.wikipedia.org/wiki/OSI_model). An electronicdevice 4 has one unique H-ID (e.g., 43-1). Each of H-IDs of at least asubset of the H-ID set 43 may help the electronic device 2 inidentifying each of the electronic devices 4. The software 241 ofelectronic device 2 may verify the H-ID to identify the electronicdevice(s) 4.

According to certain embodiments, an electronic device 4 has one uniqueH-ID (e.g., H-ID 43-1). The unique H-ID represents the electronic device4. The unique H-ID may be associated with a type of the electronicdevice 4, which may include, for example but is not limited to, “humaninterface device,” “audio,” “keyboard,” “mouse,” “remote controller,”“joystick,” “gamepad,” or the like.

The unique H-ID may be associated with a class of the electronic device4, which may include, for example but is not limited to, “wireless audioheadset,” “wired headset,” “wireless media headset,” “wired mediaheadset,” “keyboard,” “single color keyboard,” “RGB keyboard,” “high endmouse,” “low end mouse,” “Bluetooth headset,” “USB wired headset,”“Bluetooth headset with a microphone,” “USB wired audio headset with amicrophone,” “keyboard without backlights,” “keyboard with a singlecolor backlight,” “keyboard with RGB backlights,” “mouse with high DPI(dots per linear inch) and backlights,” “mouse with low DPI” or otherfunctional information. The unique H-ID may include an alphanumericsequence, according to certain embodiments.

The unique H-ID may include a random number, which is generated by aprocessor, a controller (e.g., the control module 41 as shown in FIG.2B), a key generator, or other circuitry, with or without the help offirmware. The unique H-ID may include an universally unique identifier(UUID) (please seehttps://en.wikipedia.org/wiki/Universally_unique_identifier). The H-IDmay be generated by the electronic device 4.

In some embodiments, the unique H-ID may be associated with protocoldata or protocol information. The unique H-ID may be derived from thedata or information of protocol used to establish a communicationchannel between the electronic devices 2 and 4. The unique H-ID may beassociated with the data or information of the electronic device 4. Theunique H-ID may be derived from the data or information of theelectronic device 4. The unique H-ID may be associated with therespective L-IDs of the electronic device 4. The unique H-ID may bederived from the respective L-IDs of the electronic device 4. Thissentence is repeated above at the end of paragraph above

In some embodiments where a communication channel between the electronicdevices 2 and 4 is established in accordance with a USB communicationprotocol, the H-ID of the electronic device 4 may be derived fromstandard information or L-ID(s) of USB communication protocol, forexample but is not limited to, a Vendor ID, a Products ID, the firmwareversion, the serial number, and string descriptors.

In some embodiments of the subject application where a communicationchannel between the electronic devices 2 and 4 is established inaccordance with one wireless communication protocol (e.g., the Bluetoothcommunication protocol, a Wi-Fi communication protocol, or a proprietarycommunication protocol), the H-ID of the electronic device 4 may bederived from standard information or L-ID(s) of the wirelesscommunication protocol, for example but is not limited to a pairing ID.For the example where the communication follows the Blue toothcommunication protocol, the pairing ID includes a public address.

In some embodiments where the communication follows the Ethernetprotocol, the unique H-ID may be derived from a media access control(MAC) address of the electronic device 4. In some embodiments, theunique H-ID may be derived from a device serial number of the electronicdevice 4. In some embodiments, the unique H-ID may be derived from asilicon ID of a control module 41 of the electronic device 4 (e.g., thesilicon ID may be generated under the physical unclonable function orthe physical untraceable function (PUF)). In some embodiments, theunique H-ID may be derived from the identifier indicating the type ofthe electronic device 4. In some embodiments, the unique H-ID may bederived from the identifier indicating the class of the electronicdevice 4.

In some embodiments, the H-ID may be derived a combination of some ofthe mechanism as discussed above. For example, the H-ID may be derived acombination of any two or more selected from the followings: an deviceserial number of the electronic device 4, a product ID of the electronicdevice 4, an MAC address, an UUID, a silicon ID of the electronic device4 or other parameters.

The memory 24 may include a buffer or a cache (not shown in the FIG. 1Aor FIG. 1B) for data transmission between the electronic devices 2 and4.

FIG. 2A illustrates an electronic device according to some embodimentsof the subject application.

Referring to FIG. 2A, the electronic device 4 a includes a controlmodule 41, a memory 42, and communication modules 44, 45, and 46.

The control module 41 may include a controller and a system-on-chip. Thecontrol module 41 may be associated with the electronic device 2. Thecontrol module 41 may be associated with the software 241 of theelectronic device 2. The control module 41 may be associated with thesoftware 242 of the electronic device 2. The control module 41 may beassociated with the software 241 and 242 of the electronic device 2. Forexample, the electronic device 2 may control the electronic device 4 bytransmitting data or command(s) to the control module 41 of theelectronic device 4. The software 241 of the electronic device 2 maycontrol the electronic device 4 by transmitting data or command(s) tothe control module 41. The software 242 of the electronic device 2 maycontrol the electronic device 4 by transmitting data or command(s) tothe control module 41. Data or command(s) to be transmitted to theelectronic device 2 may be processed by the control module 41. Data orcommand(s) to be transmitted to the electronic device 2 may be generatedby the control module 41. Data or command(s) for the electronic device 4may be processed by the control module 41. The control module 41 maycontrol data transmission between the electronic device 2 and 4 a. Thecontrol module 41 may check whether commands or data are successfullytransmitted to the electronic device 2. The control module 41 may checkwhether commands or data sent by the electronic device 2 aresuccessfully received. If an interruption of data transmission (orinteractions) between the electronic devices 2 and 4 a on acommunication channel occurs (or being detected), the control module 41may freeze or suspend a state of data transmission (e.g., a receivingstate or a transmitting state) and keep parameters or configurations ofthe electronic device 4 a intact.

The communication module 44 may include a wireless communication moduleor a wired communication module. The communication module 45 may includea wireless communication module or a wired communication module. Thecommunication module 46 may include a wireless communication module or awired communication module.

The memory 42 may include, for example but is not limited to, a volatilememory (e.g., a random access memory (RAM), Dynamic Random Access Memory(DRAM), Static Random Access Memory (SRAM)), a flash memory, or othertypes of memory or memory module(s). An H-ID 43-1 and L-IDs 441, 451,and 461 are stored in the memory 42. The memory 42 in the electronicdevice 4 a may function as a buffer or a cache for data transmissionbetween the electronic devices 2 and 4 a.

The electronic device 4 a has one unique H-ID 43-1, which may betransmitted to the electronic device on a communication channel. Uponreceipt of the H-ID 43-1 from the electronic device 4 a, the electronicdevice 2 may compare the H-ID 43-1 received from the electronic device 4a with the H-ID 43-1 stored in the memory 24 of the electronic device 2.Upon receipt of the H-ID 43-1 from the electronic device 4, the software241 of the electronic device 2 may identify the electronic device 4 a bycomparing the H-ID 43-1 received from the electronic device 4 a with theH-ID 43-1 stored in the memory 24 of the electronic device 2. Once thetwo H-IDs 43-1 are matched, the electronic device 4 a and the electronicdevice 2 may be linked (or connected) for data communication (e.g., theelectronic device 4 a is known to the electronic device 2), and theelectronic device 2 may notify the electronic device 4 a ofidentification or verification result.

Each of the communication modules 44, 45, and 46 is used forestablishing a communication channel or pipe to the electronic device 2in accordance with one communication protocol. The memory 42 of theelectronic device 4 a shown in FIG. 2A stores L-IDs 441, 451, and 461.The L-ID 441 corresponds to the communication module 44 and thecorresponding communication protocol. The L-ID 451 corresponds to thecommunication module 45 and the corresponding communication protocol.The L-ID 461 corresponds to the communication module 46 and thecorresponding communication protocol. One L-ID is used for establishinga communication channel according to one communication protocol (e.g.,Bluetooth communication protocol, a Wi-Fi communication protocol, aproprietary communication protocol (e.g., proprietary wireless 2.4 GHzdata communication protocol), USB communication protocol, Thunderboltcommunication protocol, Ethernet communication protocol or otherprotocol(s)).

In FIG. 2A, the communication module 44 and the L-ID 441 may help orfacilitate establishment of a communication channel or pipe to theelectronic device 2. The communication module 45 and the L-ID 451 mayhelp or facilitate establishment of a communication channel or pipe tothe electronic device 2. The communication module 46 and the L-ID 461may help or facilitate establishment of a communication channel or pipeto the electronic device 2.

In FIG. 2A, a generator 48 of the electronic device 4 the H-ID may beused to construct an unique H-ID of the electronic device 4 a. In someembodiments, the generator 48 may be a circuit separated from thecontrol module 41. In some embodiments, the generator 48 may beintegrated within the control module 41. In some embodiments, thegenerator 48 may be implemented as a program (either software orfirmware) executed by the control module 41.

FIG. 2B illustrates another electronic device according to someembodiments of the subject application.

Referring to FIG. 2B, the electronic device 4 b includes a controlmodule 41, a memory 42, communication modules 46 and 47, and a generator48.

The control module 41 may include a controller and a system-on-chip.Data or command(s) to be transmitted to the electronic device 2 may beprocessed by the control module 41. Data or command(s) to be transmittedto the electronic device 2 may be generated by the control module 41.Data or command(s) received from the electronic device 2 may beprocessed by the control module 41. The control module 41 may controldata transmission between the electronic device 2 and 4 b. The controlmodule 41 may check whether commands or data are successfullytransmitted to the electronic device 2. The control module 41 may checkwhether commands or data sent by the electronic device 2 aresuccessfully received. If an interruption of data transmission (orinteractions) between the electronic devices 2 and 4 b on acommunication channel occurs (or being detected), the control module 41may freeze or suspend a state of data transmission (e.g., a receivingstate or a transmitting state) and keep parameters or configurations ofthe electronic device 4 b intact.

The communication module 46 may include a wireless communication moduleor a wired communication module. The communication module 47 may includea wireless communication module or a wired communication module.

The memory 42 may include, for example but is not limited to, a volatilememory (e.g., a random access memory (RAM), Dynamic Random Access Memory(DRAM), Static Random Access Memory (SRAM)), a flash memory, or othertypes of memory or memory module(s). An H-ID 43-2 and L-IDs 461, and 471are stored in the memory 42. The memory 42 in the electronic device 4 bmay function as a buffer or a cache for data transmission between theelectronic devices 2 and 4 b.

The electronic device 4 b has one unique H-ID 43-2, which may betransmitted to the electronic device on a communication channel. Uponreceipt of the H-ID 43-2 from the electronic device 4 b, the electronicdevice 2 may compare the H-ID 43-2 received from the electronic device 4b with the H-ID 43-2 stored in the memory 24 of the electronic device 2.Upon receipt of the H-ID 43-2 from the electronic device 4, the software241 of the electronic device 2 may identify the electronic device 4 b bycomparing the H-ID 43-2 received from the electronic device 4 a with theH-ID 43-2 stored in the memory 24 of the electronic device 2. Once thetwo H-IDs 43-2 are matched, the electronic device 4 b and the electronicdevice 2 may be linked (or connected) for data communication (e.g., theelectronic device 4 b is known to the electronic device 2), and theelectronic device 2 may notify the electronic device 4 b ofidentification or verification result.

Each of the communication modules 46 and 47 is used for establishing acommunication channel or pipe to the electronic device 2 in accordancewith one communication protocol. The memory 42 of the electronic device4 b shown in FIG. 2A stores L-IDs 461 and 471. The L-ID 461 correspondsto the communication module 46 and the corresponding communicationprotocol. The L-ID 471 corresponds to the communication module 47 andthe corresponding communication protocol. One L-ID is used forestablishing a communication channel according to one communicationprotocol (e.g., Bluetooth communication protocol, a Wi-Fi communicationprotocol, a proprietary communication protocol (e.g., proprietarywireless 2.4 GHz data communication protocol), USB communicationprotocol, Thunderbolt communication protocol, Ethernet communicationprotocol or other protocol(s)).

In some embodiments, the H-ID may be constructed by a program (eitherfirmware or software) executed by the control module 41 of theelectronic device 4. In some embodiments, the H-ID may be constructed bythe generator 48 of the electronic device 4. The generator 48 mayinclude a circuit separated from the control module 41. The generator 48may be integrated within the control module 41 in some other embodimentsof the subject application. The generator 48 may be implemented as aprogram (either software or firmware) executed by the control module 41.

In FIG. 2B, the communication module 46 and the L-ID 461 may help orfacilitate establishment of a communication channel or pipe to theelectronic device 2. The communication module 47 and the L-ID 471 mayhelp or facilitate establishment of a communication channel or pipe tothe electronic device 2.

Referring back to FIG. 1A, a communication channel between oneelectronic device 2 and one electronic device 4 may be changed orswitched to another communication channel, either automatically ormanually, in order to have a better communication quality, to charge thebattery, to avoid mutual interference, or to have convenient orcomfortable user experience.

In some embodiments of the subject application, channel switch betweenone electronic device 2 and one electronic device 4 (e.g., from awireless communication channel to a wired communication channel) may betriggered by scenarios which include, for example but is not limited to,charging battery of the electronic device 4 whose power is running low,avoiding mutual radio interference in a multiple-device environment.

In some embodiments of the subject application, channel switch betweenone electronic device 2 and one electronic device 4 (e.g., from awireless communication channel to another wireless communicationchannel) may be triggered by scenarios which include, for example but isnot limited to, looking for a channel which provides better performance(e.g., transmission speed, signal quality, etc.).

FIG. 3 illustrates data according to some embodiments of the subjectapplication.

Referring to FIG. 3, data 6 may include portions 61 and 62. It iscontemplated that data 6 may include more or less portion(s) (not shownin FIG. 3). The data 6 may be generated by the electronic device 2 or byelectronic device 4. The data 6 may be transmitted by the electronicdevice 2 or by electronic device 4. The data 6 may be received by theelectronic device 4 or by electronic device 2.

FIG. 4 illustrates interactions between one electronic device 2 andanother electronic device 4 according to some embodiments of the subjectapplication.

Referring to FIG. 4, the electronic device 2 generates data 6 (as shownin FIG. 3) to be transmitted to the electronic device 4. In someembodiments, the electronic device 4 generates data 6 (as shown in FIG.3) to be transmitted to the electronic device 2.

According to some embodiments, a communication channel 51 is establishedbetween electronic device 2 and electronic device 4 with the assistanceof electronic device 3 (e.g., a dongle that is communicatively coupledto electronic device 2). In operation 401, the electronic device 2transmits the data 6 to the electronic device 4 on a communicationchannel 51 (e.g., a Bluetooth communication channel). A notification ofsuccessful receipt of a portion of data 6 (e.g., the portion 61 of data6 as shown in FIG. 3) may be transmitted to the electronic device 2 fromthe electronic device 4 in the operation 401. Details of operation 401will be described below with accompanying FIG. 5.

In operation 402, an interruption of the interactions between electronicdevices 2 and 4 on the communication channel 51 occurs. The interruptionof the interactions between electronic devices 2 and 4 on thecommunication channel 51 may be detected by the electronic device 2 orby electronic device 4. Interruption of the interactions betweenelectronic devices 2 and 4 may be caused by, for example but is notlimited to, traffic congestion, deterioration of communication quality(e.g., relatively low Signal Noise Ratio), power blackout or cut-off,channel switch, etc.

Interruption may be detected via some mechanisms, such as time-outmechanism, check-sum mechanism or other suitable mechanism(s). Forexample, the electronic device 2 may detect the interruption if theelectronic device 2 does not receive a response (e.g., the notificationof successful receipt of the portion 61 of data 6) from the electronicdevice 4 within a time period. For example, interruption may be detectedor determined by the electronic device 4 if no data or portion of datais received within a time period.

For purposes of explanation, assume that prior to interruption, theportion 61 of data 6 was successfully received by the electronic device4, but the portion 62 of data 6 was not successfully received by theelectronic device 4. If interruption is detected, the electronic device2 may freeze or suspend a state of data transmission or interactions(e.g., suspend transmitting the portion 62 of the data 6). Ifinterruption is detected, the electronic device 2 may store (or bufferor cache) the portion 62 of the data 6 in the memory 24. The data 6(including portions 61 and 62) is associated with the electronic device2. The data 6 (including portions 61 and 62) is associated with theelectronic device 4. The data 6 (including portions 61 and 62)associates with the configurations of the electronic device 4.

If interruption is detected, the electronic device 4 may freeze orsuspend a state of data transmission or interactions (e.g., suspendreceiving any data). If interruption is detected, the electronic device4 may store (or buffer or cache) the portion 61 of the data 6, which wassuccessfully received, in the memory 42.

In operation 403, another communication channel 52 (e.g., a USBcommunication channel) between the electronic devices 2 and 4 isestablished with the assistance of electronic device 3 (e.g., a donglethat is communicatively coupled to electronic device 2). Further, inoperation 403, another available communication channel 52 (e.g., a USBcommunication channel) between the electronic devices 2 and 4 isdetected. The operation 403 may be automatically performed by theelectronic device 2 (e.g., by module 241 in FIG. 1B). Alternatively, heoperation 403 may be automatically performed by the electronic device 4.In some embodiments, the operation 403 may be manually performed.

Subsequent to channel switch as described in operation 403, theelectronic devices 2 and 4 perform a link operation for datacommunication on the communication channel 52 in operation 404. Theelectronic device 2 may query the electronic device 4 to transmit theunique H-ID (e.g., H-ID 43-1) on the communication channel 52. The H-ID(e.g., H-ID 43-1) is unique for the electronic device 4. The electronicdevice 4 may transmit the unique H-ID (e.g., H-ID 43-1) to theelectronic device 2 on the communication channel 52. A response may besent by the electronic device 2 on the communication channel 52 if theH-ID 43-1 was successfully received.

The electronic device 2 may use the received H-ID 43-1 to perform thelink operation for data communication. For example, the electronicdevice 2 may compare the H-ID 43-1 received from the electronic device 4with the H-ID 43-1 stored in the memory 24 of the electronic device 2.For example, if the H-ID 43-1 received from the electronic device 4 isidentical to the H-ID 43-1 stored in the memory 24 of the electronicdevice 2, the electronic device 2 and the electronic device 4 arelinked. In other words, the electronic device 4 is known to theelectronic device 2. A notification of successful linking may betransmitted from the electronic device 2 to the electronic device 4.

If the electronic device 4 is known to the electronic device 2 (or thelink operation is successful), the electronic device 2 may resume thestate of data transmission (e.g., transmitting state) in operation 405.If the electronic device 4 is known to the electronic device 2 (or thelink operation is successful), the electronic device 2 may transmit theportion 62 of the data 6 to the electronic device 4 on the communicationchannel 52 in operation 405. The electronic device 4 may receive theportion 62 of the data 6 from the electronic device 2 on thecommunication channel 52 in operation 405.

According to the interactions as illustrated and described with respectto FIG. 4, transmission of data 6 may be completed during channel switch(e.g., from communication channel 51 to communication channel 52)without reset or reconfiguration of the electronic device(s) 4. This isimportant because reset or reconfiguration of one electronic device(s) 4may consume relatively great time. If some of the electronic devices 4experience channel switch, relatively greater time is expected to resetor reconfigure these electronic devices 4.

The portion 62 of data 6, which was not successfully transmitted (orreceived) prior to channel switch, may be stored and transmitted (orreceived) on another communication channel (e.g., communication channel52) to avoid reset or reconfiguration of the electronic device 4.

In some embodiments, the portion 61 of the data 6 stored in the memory42 of the electronic device 4 may be wiped off from memory 42. Theportion 61 of the data 6 stored in the memory 42 may be wiped off due totime-out (e.g., the time between operations 402 and 403). The portion 61of the data 6 stored in the memory 42 may be wiped off due to accidentalreset of the electronic devices 4 (e.g., the reset because of powerblackout, cut-off, or crash). The portion 61 of the data 6 stored in thememory 42 may be wiped off due to accidental erasure, write errors, orread errors of the memory 42.

If the portion 61 stored in the memory 42 is cleaned, the electronicdevice 4 may transmit a unique H-ID (e.g., H-ID 43-1) and an indicatorto the electronic device 2 on the communication channel 52 in operation404. The indicator indicates that the portion 61 stored in the memory 42is cleaned.

If the electronic device 4 is known to the electronic device (or thelink operation is successful in operation 404), the electronic device 2may transmit the data 6 (including the portions 61 and 62) to theelectronic device 4 on the communication channel 52 in operation 405.The transmission of data 6 may be completed during channel switch (e.g.,from communication channel 51 to communication channel 52) without resetor reconfiguration of the electronic device 4. This is important becausereset or reconfiguration of the electronic device 4 may consumerelatively great time.

In some embodiments, the portion 62 of the data 6 stored in the memory24 of the electronic device 2 may be wiped off from memory 24. Theportion 62 of the data 6 stored in the memory 24 may be wiped off due totime-out (e.g., the time between operations 402 and 403). The portion 62of the data 6 stored in the memory 24 may be wiped off due to accidentalreset of the electronic devices 4 (e.g., the reset because of powerblackout, cut-off, or crash). The portion 62 of the data 6 stored in thememory 24 may be wiped off due to accidental erasure, write errors, orread errors of the memory 24.

If the portion 62 of the data 6 stored in the memory 24 of theelectronic device 2 is wiped off. The electronic device 2 may initializethe electronic device 4 as a new device.

In some embodiments, if the electronic device 4 is not known to theelectronic device (or the link operation is not successful in operation404), the electronic device 2 may initialize the electronic device 4 asa new device.

FIG. 5 illustrates interactions between one electronic device andanother electronic device according to some embodiments of the subjectapplication.

Referring to FIG. 5, the operation 401 as illustrated and described withreference to FIG. 4 is further illustrated.

In some embodiments of the subject application where a communicationchannel (e.g., a USB channel) is established between the electronicdevice 2 and electronic device 4, the electronic device 2 and electronicdevice 4 may be connected by a USB cable. The electronic device 2enumerates the electronic device 4 after detecting a USB connector isplugged in. The communication channel between the electronic device 2and the electronic device 4 is established in accordance with the USBcommunication protocol.

In some embodiments of the subject application where a communicationchannel (e.g., a wireless channel) is established between the electronicdevices 2 and 4, the wireless communication channel may include aBluetooth communication channel a Wi-Fi communication channel, aproprietary communication channel, and so forth.

In operation 510, the electronic device 2 (e.g., with the help of thesoftware 241) may determine commands to query the electronic device 4 byusing standard information of the associated communication protocol orL-ID(s) the electronic device 4.

For example, in one case where a USB channel is established between theelectronic device 2 and electronic device 4, the electronic device 2 mayuse or access standard information of USB communication protocol orL-ID(s) of the electronic device 4 (e.g., a Vendor ID, a Products ID,the firmware version, the serial number, and string descriptors) todetermine commands and parameters to query the electronic device.

For example, in one case where a wireless communication channel isestablished between the electronic devices 2 and 4, an identifier (ID)of the associated wireless communication protocol may be embedded in thedata transmitted on the wireless communication channel. According to theembedded ID, the electronic devices 2 and 4 can discriminate whether thedata is intended for this wireless communication channel. The IDembedded in the data may include a pairing ID. The ID embedded in thedata may include L-ID(s) associated wireless communication protocol. Theelectronic device 2 may use or access the standard information of apairing mechanism of the communication channel, such as a pairing ID orL-ID(s) associated with the wireless communication protocol, todetermine commands to query the electronic device 4. The pairing ID maybe stored in the electronic device 2. The pairing ID may be stored inthe electronic device 4.

In operation 512, the electronic device 2 queries the electronic device4 for the unique H-ID (e.g., H-ID 43-1 as shown in FIG. 1B).

The unique H-ID may include an alphanumeric sequence. The unique H-IDmay include an universally unique identifier (UUID). The unique H-ID maybe derived from protocol information used to establish communicationchannel between the electronic devices 2 and 4. The H-ID may begenerated by the electronic device 4. The generated H-ID is stored inthe memory 42 of the electronic device 4.

In operation 513, the electronic device 2 receives the H-ID from theelectronic device 4 on the communication channel. The electronic device2 stores the received H-ID in the memory 24.

In operation 514, the electronic device 2 collects configuration (orparameters) and capabilities of the electronic device 4. In someembodiments, the electronic device 2 may send a query command to theelectronic device 4 to collect the configuration (or parameters) andcapabilities of the electronic device 4 from the electronic device 4. Insome embodiments, the electronic device 2 may collect the configuration(or parameters) and capabilities of the electronic device 4 from adatabase stored in the electronic device 2 (e.g., stored in the memory24).

In operation 515, the electronic device 2 configures the electronicdevice 4 according to user's inputs, the configuration (or parameters),capabilities collected in operation 514, other parameter(s), or anycombination of the aforesaid parameters. The module(s) described abovemay be implemented in hardware for relatively high speed with relativelygreat cost. The module(s) described above may be implemented in softwarefor relatively low speed with relatively less cost.

FIG. 6 illustrates a smart dongle device supporting wirelesscommunication with a host computer, according to some embodiments of thesubject application. FIG. 6 shows at least two input devices (e.g.,wireless keyboard 612, and wireless mouse 614) and a wireless audioheadset 610 (e.g., wireless audio headset that includes a microphonethat a user can use to send audio data to host computer). According tocertain embodiments, smart dongle 616 includes a micro controller unitand is in the form of a USB plugged into host computer 618. Smart dongle616 is a transceiver device that: 1) can receive and transmit data fromhost computer to the wireless keyboard, wireless mouse and wirelessaudio headset, and 2) can receive and transmit data from the wirelesskeyboard, wireless mouse, wireless audio headset to the host computer.Wireless keyboard 612, wireless mouse 614, wireless audio headset 610are non-limiting examples of electronic devices 4. Smart dongle 616 is anon-limiting example of electronic device 3. Host computer 618 is anon-limiting example of an electronic device 2. Smart dongle 616 helpsthe wireless communication between host computer 618 and the wirelesskeyboard 612, wireless mouse 614 and wireless audio headset 610.According to certain embodiments, host computer 618 can send suchmultiplexed data to wireless computer peripheral devices 610, 612, 614at low latency with the help of smart dongle 616. According to certainembodiments, non-limiting examples of low latency are as follows: (i)latency of approximately less than 2.5 milliseconds for data sent fromwireless keyboard 612 to host computer 618 and from wireless mouse 614to host computer 618, (ii) latency of approximately less than 12milliseconds for data sent between wireless audio headset 610 and hostcomputer 618. According to certain embodiments, non-limiting examples oflow latency are as follows: (i) latency of approximately less than arange of 2 milliseconds to 3 milliseconds for data sent from wirelesskeyboard 612 to host computer 618 and from wireless mouse 614 to hostcomputer 618, (ii) latency of approximately less than a range of 10milliseconds to 14 milliseconds for data sent between wireless audioheadset 610 and host computer 618.

FIG. 7 illustrates the multiplexing of data that is sent to peripheraldevices using a smart dongle, according to some embodiments of thesubject application.

FIG. 7 shows electronic device 2 (such as a host computer, etc.,)sending data to multiple wireless electronic devices 4 (e.g., wirelesscomputer peripheral devices 4 a, 4 b, 4 c) with the help of electronicdevice 3 (e.g., smart dongle). As a non-limiting example, electronicdevice 2 (host computer) can multiplex keyboard data (e.g., downlinklighting data 70 that host computer wants to send to wireless keyboard 4a) with mouse data (e.g., downlink lighting data 72 that host computerwants to send to wireless mouse 4 b) with audio data (e.g., downlinkstereo game audio data 76 and downlink lighting data 77 that hostcomputer wants to send to wireless audio headset 4 c). FIG. 7 alsoshows, as non-limiting examples, communication of data from wirelesskeyboard 4 a, wireless mouse 4 b and wireless audio headset 4 c toelectronic device 2 (host computer). As non-limiting examples,communication of data from wireless keyboard 4 a, wireless mouse 4 b andwireless audio headset 4 c to electronic device 2 include uplinkkeyboard data 71, uplink mouse sensor movement data 73, uplink mousebutton data 74, uplink microphone data 75 and uplink system data 78. Thesmart dongle sends data from the wireless keyboard, wireless mouse andwireless audio headset on the same communication channel using the fixedtime slots allotted to each of the peripheral devices (keyboard, mouse,headset) and while achieving low latency. According to certainembodiments, non-limiting examples of low latency are as follows: (i)latency of approximately less than 2.5 milliseconds for data sent fromwireless keyboards to host computer (user's personal computer) 4 a andfrom wireless mice 4 b to host computer (e.g., user's personalcomputer), (ii) latency of approximately less than 12 milliseconds fordata sent between wireless audio headset 4 c and host computer (e.g.,user's personal computer). According to certain embodiments,non-limiting examples of low latency are as follows: (i) latency ofapproximately less than a time period in a range of 2 milliseconds to 3milliseconds for data sent from wireless keyboards to host computer(user's personal computer) 4 a and from wireless mice 4 b to hostcomputer (e.g., user's personal computer), (ii) latency of approximatelyless than a time period in a range of 10 milliseconds to 14 millisecondsfor data sent between wireless audio headset 4 c and host computer(e.g., user's personal computer). In the case of audio data, thepersonal computer can send audio to the headset via the dongle (e.g.,from a video playing on the personal computer) and the audio headset cansend microphone data from the headset (e.g., user speaks into themicrophone) to the personal computer via the dongle. In such a case, thesmart dongle is able to achieve a latency that is less than 12milliseconds for the audio communication. According to certainembodiments, the smart dongle is able to achieve a latency that is lessthan a time period in a range of 10 milliseconds to 14 milliseconds forthe audio communication.

According to certain other embodiments, the types of wireless computerperipheral devices are not limited to keyboard 4 a, mouse 4 b and audioheadset 4 c. The types of wireless computer peripheral devices may varyfrom implementation to implementation. For example, wireless computerperipheral devices may also include electronic mouse mats, etc., inrelation to their respective wireless communication with the hostpersonal computer.

According to certain embodiments, the smart dongle communicationmanagement system uses the data structures, timing, buffer and frameformat that are based on audio data structures, timing, buffer and frameformat. As a non-limiting example, the smart dongle management system isbased on a frame rate of 48 kilo hertz (kHz) sample rate with 16 bits ofdata per sample (bit depth). The embodiments are not restricted to 48kHz sample rate with 16 bits of data per sample. The sample rate and bitdepth may vary from implementation to implementation. Non-limitingexamples of other sample rates can range from 44 kHz to 96 kHz.

According to certain embodiments, the audio-type frame format of samplerate ranging from 44 kHz to 96 kHz and bit depth (16 bits, 24 bits, or32 bits) allows the smart dongle's communication management system tohandle the fast moving audio data from the user's PC and the fast movingmicrophone data from the headset to the user's PC while at the same timeallowing the smart dongle to create slots for transmitting data from themouse and/or data from the keyboard to the user's PC without sacrificingthe audio performance and whilst achieving low latency for the mousedata transmission and keyboard data transmission, as described herein.

According to certain embodiments, low latency is achieved by optimizingACK packets (acknowledgment packets), sync packets, payloads, etc. As anon-limiting example, the payload can be minimized during transmissionand the corresponding data can be reconstructed at the receiver. Such anoptimization can be used for sending data from the wireless computerperipheral devices to the host computer as well as sending data from thehost computer to the respective wireless computer peripheral devices.According to certain embodiments, the audio data sample rate can rangeanywhere between 44 kHz and 96 kHz. As a non-limiting example, if theaudio data sample rate is set at 48 kHz for game audio data sent fromhost computer via smart dongle device to audio headset and set at 24 kHzfor microphone data coming from audio headset via smart dongle to hostcomputer, then the audio data packets in both directions are trimmed toreduce audio payload whilst accommodating to make room for communicationwith other devices such as wireless keyboards and wireless mice.

According to certain embodiments, the smart dongle's communicationmanagement system creates fixed slots for the wireless audio, mouse andkeyboard data transmission in the audio-type frame format of sample rateranging from 44 kHz to 96 kHz and bit depth (16 bits, 24 bits, or 32bits), as explained in greater detail herein with reference to FIG. 8.

According to certain other embodiments, the smart dongle's communicationmanagement system creates dynamic slots for the wireless audio, mouseand keyboard data transmission in the audio-type frame format of samplerate ranging from 44 kHz to 96 kHz and bit depth (16 bits, 24 bits, or32 bits), explained in greater detail herein with reference to FIG. 9.

According to certain other embodiments, the dongle's communicationmanagement system creates dynamic payloads with respect to the wirelessaudio, mouse and keyboard data transmission in the audio-type frameformat of sample rate ranging from 44 kHz to 96 kHz and bit depth (16bits, 24 bits, or 32 bits), explained in greater detail herein withreference to FIG. 10.

FIG. 8 illustrates fixed time slot assignments created by a smartdongle, according to some embodiments of the subject application.According to some embodiments, the smart dongle is a USB-based adapterdevice for wireless technology that has a micro controller unit andfunctions as a transmitter/receiver (transceiver). For purposes ofexplanation, assume that the following wireless devices have been pairedwith the smart dongle: 1) wireless audio headset, 2) wireless mouse, and3) wireless keyboard. FIG. 8 shows time slots in frame-1 (800) andframe-2 (850) for data communication (digital transmission) between ahost computer and wireless computer peripheral devices (wireless audioheadset, wireless keyboard, wireless mouse) created by the smart dongleplugged into the host computer. Frame-1 (800) includes half frame (806a) and half frame (806 b). Similarly, frame-2 (850) includes half frame(806 a) and half frame (806 b). Half frame (806 a) shows downlink timeslot (801 a), uplink-1 time slot (802 a), uplink-2 time slot (803 a),uplink-3 time slot (804 a), and syncing/scanning slot (805 a), accordingto certain embodiments Similarly, half frame (806 b) shows downlink timeslot (801 b), uplink-1 time slot (802 b), uplink-2 time slot (803 b),uplink-3 time slot (804 b), and syncing/scanning slot (805 b).

According to certain embodiments, in downlink time slot (801 a), thesmart dongle sends data from host computer (e.g., user's PC) to thewireless keyboard and wireless audio headset. In uplink-1 (802 a), thewireless keyboard sends data to the host computer, via the smart dongle.In uplink-2 (803 a), the wireless mouse sends data to the host computer,via the smart dongle. In uplink-3 (804 a), the wireless audio headsetsends data to the host computer, via the smart dongle. According tocertain embodiments, in downlink time slot (801 b), the smart donglesends data from host computer to the wireless mouse and wireless audioheadset. In uplink-1 (802 b), the wireless keyboard sends data to thehost computer, via the smart dongle. In uplink-2 (803 b), the wirelessmouse sends data to the host computer, via the smart dongle. In uplink-3(804 b), the wireless audio headset sends data to the host computer, viathe smart dongle.

According to certain embodiments, the smart dongle creates the timeslots in frame-2 (850) in a similar manner as that of frame-1 (800).

Syncing/scanning time slot occurs at the end of each half frame, wherebythe smart dongle scans the communication channels used in thecommunication between host computer and the wireless computer peripheraldevices. The smart dongle scans the communication channels forinterference. If interference is detected, then the smart dongle willuse a different communication channel (syncing) for downlinks and/oruplinks. The number of wireless computer peripheral devices managed bythe smart dongle can vary from implementation to implementation. Thenumber of wireless computer peripheral devices that can be paired to thesmart dongle for management can be X, where X is an integer that is lessthan 10.

According to certain embodiments, the shared downlink channel forsending data to the wireless keyboard and wireless audio headset orsending data to wireless mouse and wireless audio headset contains 16bytes of data for wireless keyboard, 16 bytes of data for wireless mouseand 3.3 bits of data per sample of stereo game audio. According tocertain embodiments, each uplink channel for either the wirelesskeyboard or wireless mouse contains 25 bytes of data. The uplink channelfor audio data contains 3.3 bits of data per sample of mono microphoneaudio, according to certain embodiments.

FIG. 9 illustrates time slots that are dynamically assigned and createdby a smart dongle, according to some embodiments of the subjectapplication. According to some embodiments, the smart dongle has a microcontroller unit. According to certain embodiments, the smart donglecommunication management system uses the data structures, timing, bufferand frame format that are based on audio data structures, timing, bufferand frame format.

FIG. 9 shows time slots in frame-1 (900) and frame-2 (950) for datacommunication (digital transmission) between a host computer andwireless computer peripheral devices (wireless audio headset, wirelesskeyboard, wireless mouse) created by the smart dongle plugged into thehost computer.

Frame-1 (900) includes half frame (906 a) and half frame (906 b). Halfframe (906 a) shows downlink time slot (901 a), uplink-1 time slot (902a), uplink-2 time slot (903 a), uplink-3 time slot (904 a), andsyncing/scanning slot (905 a), according to certain embodiments.Similarly, half frame (906 b) shows downlink time slot (901 b), uplink-1time slot (902 b), uplink-2 time slot (903 b), uplink-3 time slot (904b), and syncing/scanning slot (905 b). Syncing/scanning time slot occursat the end of each half frame, whereby the smart dongle scans thecommunication channels used in the communication between host computerand the wireless computer peripheral devices. The smart dongle scans thecommunication channels for interference. If interference is detected,then the smart dongle will use a different communication channel(syncing) for downlinks and/or uplinks.

According to certain embodiments, in downlink time slot (901 a), thesmart dongle sends data from host computer to the wireless keyboard andwireless audio headset. In uplink-1 (902 a), the wireless keyboard sendsdata the host computer, via the smart dongle. In uplink-2 (903 a), thewireless mouse sends data to the host computer, via the smart dongle. Inuplink-3 (904 a), the wireless audio headset sends data to the hostcomputer, via the smart dongle. According to certain embodiments, indownlink time slot (901 b), the smart dongle sends data from hostcomputer to the wireless mouse and wireless audio headset. In uplink-1(902 b), the wireless keyboard sends data to the host computer, via thesmart dongle. In uplink-2 (903 b), the wireless mouse sends data to thehost computer, via the smart dongle. In uplink-3 (904 b), the wirelessaudio headset sends data to the host computer, via the smart dongle.

For purposes of explanation, assume that in frame-2 (950), the wirelesskeyboard (or any other wireless computer peripheral device that waspreviously available for communication but is now unavailable forcommunication with the host computer) has become unavailable forcommunication with the host computer or it simply does not have data tosend to the host computer for the next few milliseconds in frame-2.Frame-2 (950) includes half frame (906A) and half frame (906B). In theevent that the wireless keyboard has become unavailable forcommunication with the host computer or does not have data to send tohost computer during frame-2, the smart dongle will dynamically assigntime slots to the other wireless computer peripheral devices that areavailable for communication with the host computer so as to make use ofthe time slots that would have been otherwise used by the wirelesskeyboard for communication. For example, as shown in half frame (906A)of frame-2 (950), according to certain embodiments, in downlink timeslot (901A), the smart dongle sends data from host computer to thewireless mouse and wireless audio headset since the keyboard is nolonger available for communication or does need to send data at thattime. Further, the smart dongle assigns the uplink-1 (902A) slot, anduplink-2 (903A) slot to the wireless mouse so that the wireless mousecan send data to the host computer, via the smart dongle. In uplink-3(904A), the wireless audio headset sends data to the host computer, viathe smart dongle. Similarly, in half frame (906B) of frame-2 (950),according to certain embodiments, in downlink time slot (901B), thesmart dongle sends data from host computer to the wireless mouse andwireless audio headset since the wireless keyboard is no longeravailable for communication or does not need to send data at that time.The smart dongle assigns the uplink-1 (902B) slot, and uplink-2 (903B)slot to the wireless mouse so that the wireless mouse can send data tothe host computer, via the smart dongle. In uplink-3 (904B), thewireless audio headset sends data to the host computer, via the smartdongle. Syncing/scanning time slot occurs at the end of each half frame(905A, 905B) in frame-2 (950), whereby the smart dongle scans thecommunication channels used in the communication between host computerand the wireless computer peripheral devices. The smart dongle scans thecommunication channels for interference. If interference is detected,then the smart dongle will use a different communication channel fordownlinks and/or uplinks. According to certain embodiments, the wirelesscomputer peripheral device that needs extra slots to send data to thehost computer can notify the smart dongle of such a need duringsyncing/scanning by the smart dongle. The embodiments are not restrictedto 3 wireless computer peripheral devices as described above withreference to FIG. 9. The number of wireless computer peripheral devicesmanaged by the smart dongle can vary from implementation toimplementation. The number of wireless computer peripheral devices thatcan be paired to the smart dongle for management can be X, where X is aninteger that is less than 10. As a non-limiting example and for purposesof explanation, assume that X=4. To explain, assume the number ofwireless computer peripheral devices paired to the smart dongle include2 wireless keyboards (KB-One, and KB-Two, one wireless mouse and onewireless audio headset. If, for example, one of the keyboards (KB-One)became unavailable for communication or does not need to send data at agiven time, then the smart dongle can assign an extra slot to KB-Two orto the wireless mouse depending on which of these wireless computerperipheral devices needs the slot. According to certain embodiments, ifboth KB-Two and the wireless mouse needs the extra slot, then the smartdongle will assign the extra slot to the wireless mouse because thewireless mouse has a higher data transmission priority than the wirelesskeyboard. According to certain other embodiments, a user can configurethe data transmission priority for each wireless computer peripheraldevice of the set of wireless computer peripheral devices that the userchooses to pair to the smart dongle.

FIG. 10 illustrates payloads that are dynamically assigned and createdby a smart dongle, according to some embodiments of the subjectapplication. According to some embodiments, the smart dongle has a microcontroller unit. According to certain embodiments, the smart donglecommunication management system uses the data structures, timing, bufferand frame format that are based on audio data structures, timing, bufferand frame format.

FIG. 10 shows time slots in frame-1 (1000) and frame-2 (1050) for datacommunication (digital transmission) between a host computer andwireless computer peripheral devices (wireless audio headset, wirelesskeyboard, wireless mouse) created by the smart dongle plugged into thehost computer.

Frame-1 (1000) includes half frame (1006 a) and half frame (1006 b).Half frame (1006 a) shows downlink time slot (1001 a), uplink-1 timeslot (1002 a), uplink-2 time slot (1003 a), uplink-3 time slot (1004 a),and syncing/scanning slot (1005 a), according to certain embodiments.Similarly, half frame (1006 b) shows downlink time slot (1001 b),uplink-1 time slot (1002 b), uplink-2 time slot (1003 b), uplink-3 timeslot (1004 b), and syncing/scanning slot (1005 b). Frame-2 (1050)includes half frame (1006A) and half frame (1006B). Half frame (1006A)shows downlink time slot (1001A), uplink-1 time slot (1002A), uplink-2time slot (1003A), uplink-3 time slot (1004A), and syncing/scanning slot(1005A), according to certain embodiments. Similarly, half frame (1006B)shows downlink time slot (1001B), uplink-1 time slot (1002B), uplink-2time slot (1003B), uplink-3 time slot (1004B), and syncing/scanning slot(1005B). Syncing/scanning time slot occurs at the end of each halfframe, whereby the smart dongle scans the communication channels used inthe communication between host computer and the wireless peripheraldevices. The smart dongle scans the communication channels forinterference. If interference is detected, then the smart dongle willuse a different communication channel (syncing) for downlinks and/oruplinks.

According to certain embodiments, in downlink time slot (1001 a), thesmart dongle sends data from host computer to the wireless keyboard andwireless audio headset. In uplink-1 (1002 a), the wireless keyboardsends data to the host computer, via the smart dongle. In uplink-2 (1003a), the wireless mouse sends data to the host computer, via the smartdongle. In uplink-3 (1004 a), the wireless audio headset sends data tothe host computer, via the smart dongle. According to certainembodiments, in downlink time slot (1001 b), the smart dongle sends datafrom host computer to the wireless mouse and wireless audio headset. Inuplink-1 (1002 b), the wireless keyboard sends data to the hostcomputer, via the smart dongle. In uplink-2 (1003 b), the wireless mousesends data to the host computer, via the smart dongle. In uplink-3 (1004b), the wireless audio headset sends data to the host computer, via thesmart dongle.

For purposes of explanation, assume that in frame-2 (1050), one of thewireless computer peripheral devices, e.g., wireless mouse, needs tosend more data than the other wireless computer peripheral devices(e.g., wireless keyboard and wireless audio headset). According tocertain embodiments, the smart dongle will dynamically assign morepayload capability to the wireless mouse for communication to the hostcomputer, in the event that the wireless mouse needs to send more datathan the other wireless computer peripheral devices. According tocertain embodiments, frame-2 (1050) illustrates an example of dynamicpayload assignment by the smart dongle. In frame-2 (1050), in uplink-21003A and uplink-2 1003B, the wireless mouse is able to send more datato the host computer (shown pictorially as larger rectangles in FIG. 10)as compared with the amount of data sent by the wireless keyboard(uplink-1 1002A, uplink-1 1002B) and by wireless audio headset (uplink-31004A, uplink-2 1004B) to the host computer. Further, in frame-2 (1050),in downlink time slot (1001A), the smart dongle sends data from hostcomputer to the wireless keyboard and wireless audio headset, and indownlink time slot (1001B), the smart dongle sends data from hostcomputer to the wireless mouse and wireless audio headset.

Syncing/scanning time slot (1005A, 1005B) occurs at the end of each halfframe, whereby the smart dongle scans the communication channels used inthe communication between host computer and the wireless peripheraldevices. The smart dongle scans the communication channels forinterference. If interference is detected, then the smart dongle willuse a different communication channel (syncing) for downlinks and/oruplinks. According to certain embodiments, the wireless computerperipheral device that needs extra payload capability for a given slotwhen sending data to the host computer can notify the smart dongleduring syncing/scanning by the smart dongle. The embodiments are notrestricted to 3 wireless computer peripheral devices as described abovewith reference to FIG. 10. The number of wireless computer peripheraldevices managed by the smart dongle can vary from implementation toimplementation. The number of wireless computer peripheral devices thatcan be paired to the smart dongle for management can be X, where X is aninteger that is less than 10. As a non-limiting example and for purposesof explanation, assume that X=4. To explain, assume the number ofwireless computer peripheral devices paired to the smart dongle include2 wireless mice (M-One, and M-Two), one wireless keyboard and onewireless audio headset. If, for example, one of the wireless mice(M-One) needs to send more data at a given time, then the smart donglecan assign more payload capability to M-One. According to certainembodiments, if, as another example, the wireless keyboard and thewireless mouse M-One each needs the extra payload capability, then thesmart dongle will give preference to the wireless mouse M-One over thewireless keyboard because wireless mice have a higher data transmissionpriority than wireless keyboards. According to certain otherembodiments, a user can configure the data transmission priority foreach wireless computer peripheral device of the set of wireless computerperipheral devices that the user chooses to pair to the smart dongle.

According to certain embodiments, and with reference to FIG. 8, FIG. 9and FIG. 10, low latency is achieved by performing one or more of thefollowing: 1) minimizing the transmit and receive slots in a digitaltransmission frame by reducing the payloads, 2) by optimizing the timebetween transmit and receive settings, 3) by scanning channels to reducedata packet loss, 4) by transmitting multiple types of data in smallchunks, 5) by reconstructing the small chunks of data packets receivedinto full data packet.

According to certain embodiments, data from a wireless audio headset ismultiplexed with data from a wireless mouse and data from a wirelesskeyboard based on audio data structures, timing, buffer and frame formatfor digital transmission.

According to certain embodiments, a smart dongle is used for enablingwireless communication between a user's computer and a plurality ofuser's wireless computer peripheral devices, the smart dongle comprises:a memory, a micro controller, the micro controller configured to: (1)create a data frame for digital transmission based on an audio-typeframe format of sample rate in a range of 44 kHz to 96 kHz; (2) create arespective time slot in the data frame for each of a wireless mouse, awireless keyboard and a wireless audio headset of the plurality ofuser's wireless peripheral devices that are paired to the smart dongle;(3) transmit data from the wireless keyboard to the user's computer at afirst latency that is less than a first time period in a range of 2milliseconds to 3 milliseconds; (4) transmit data from the wirelessmouse to the user's computer at a second latency that is less than asecond time period in a range of 2 milliseconds to 3 milliseconds; and(5) transmit data from the wireless audio headset to the user's computerat a third latency that is less than a third time period in a range of10 milliseconds to 14 milliseconds.

According to certain embodiments, the smart dongle's micro controller isconfigured to dynamically assign time slots in the data frame to theplurality of user's wireless computer peripheral devices based oncorresponding communication needs of the plurality of user's wirelesscomputer peripheral devices with respect to the user's computer.

According to certain embodiments, the smart dongle's micro controller isconfigured to dynamically assign size of payloads in the data frame tothe plurality of user's wireless computer peripheral devices based oncorresponding communication needs of the plurality of user's wirelesscomputer peripheral devices with respect to the user's computer.

According to certain embodiments, the smart dongle's micro controller isconfigured to minimize transmit slots and receive slots in the dataframe by reducing payloads.

According to certain embodiments, the smart dongle's micro controller isconfigured to optimize timing between transmit and receive settings.

According to certain embodiments, the smart dongle's micro controller isconfigured to scan channels to reduce data packet loss.

According to certain embodiments, the smart dongle's micro controller isconfigured to transmit multiple types of data in small chunks of datapackets.

According to certain embodiments, the smart dongle's the microcontroller is configured to reconstruct the small chunks of data packetsthat are received into full data packets.

While the invention has been described and illustrated with reference tospecific embodiments thereof, these descriptions and illustrations donot limit the invention. It should be understood by those skilled in theart that various changes may be made and equivalents may be substitutedwithout departing from the true spirit and scope of the invention asdefined by the appended claims. The illustrations may not necessarily bedrawn to scale. There may be distinctions between the artisticrenditions in the subject application and the actual invention, due tomanufacturing processes and tolerances. There may be other embodimentsof the present invention which are not specifically illustrated. Thespecification and drawings are to be regarded as illustrative ratherthan restrictive. Modifications may be made to adapt a particularsituation, material, composition of matter, method, or process to theobjective, spirit and scope of the invention. All such modifications areintended to be within the scope of the claims appended hereto. While themethods disclosed herein have been described with reference toparticular operations performed in a particular order, it will beunderstood that these operations may be combined, sub-divided, orre-ordered to form an equivalent method without departing from theteachings of the invention. Accordingly, unless otherwise specificallyindicated herein, the order and grouping of the operations are notlimitations of the invention. Moreover, the effects detailed in theabove-described embodiments and the like are merely examples. Therefore,the subject application may further have other effects.

We claim:
 1. A smart dongle for enabling wireless communication betweena user's computer and a plurality of user's wireless computer peripheraldevices, the smart dongle comprising: a memory; a micro controller, themicro controller configured to: create a data frame for digitaltransmission based on an audio-type frame format of sample rate in arange of 44 kHz to 96 kHz; create a respective time slot in the dataframe for each of a wireless mouse, a wireless keyboard and a wirelessaudio headset of the plurality of user's wireless peripheral devicesthat are paired to the smart dongle; transmit data from the wirelesskeyboard to the user's computer at a first latency that is less than afirst time period in a range of 2 milliseconds to 3 milliseconds;transmit data from the wireless mouse to the user's computer at a secondlatency that is less than a second time period in a range of 2milliseconds to 3 milliseconds; and transmit data from the wirelessaudio headset to the user's computer at a third latency that is lessthan a third time period in a range of 10 milliseconds to 14milliseconds.
 2. The smart dongle of claim 1, wherein the microcontroller is configured to dynamically assign time slots in the dataframe to the plurality of user's wireless computer peripheral devicesbased on corresponding communication needs of the plurality of user'swireless computer peripheral devices with respect to the user'scomputer.
 3. The smart dongle of claim 1, wherein the micro controlleris configured to dynamically assign size of payloads in the data frameto the plurality of user's wireless computer peripheral devices based oncorresponding communication needs of the plurality of user's wirelesscomputer peripheral devices with respect to the user's computer.
 4. Thesmart dongle of claim 1, wherein the micro controller is configured tominimize transmit slots and receive slots in the data frame by reducingpayloads.
 5. The smart dongle of claim 1, wherein the micro controlleris configured to optimize timing between transmit and receive settings.6. The smart dongle of claim 1, wherein the micro controller isconfigured to scan channels to reduce data packet loss.
 7. The smartdongle of claim 1, wherein the micro controller is configured totransmit multiple types of data in small chunks of data packets.
 8. Thesmart dongle of claim 8, wherein the micro controller is configured toreconstruct the small chunks of data packets that are received into fulldata packets.